#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

/**
 *accumulate
 *template<class InputIt, class T>
 *T accumulate(InputIt first, InputIt last, T init)
 *从定义看出init的值决定了返回类型
 */

int main(int argc, char *argv[])
{
    vector<double> vd{1.1, 2.1, 5.5};

    //init为0返回整型
    cout << accumulate(vd.begin(), vd.end(), 0) << endl;;

    cout << accumulate(vd.begin(), vd.end(), 0.0) << endl;

    return 0;
}
